﻿///////////////////////////////////////////////////////////////////////////
//  Copyright(c) 2023, GNU LESSER GENERAL PUBLIC LICENSE Version 3, 29 June 2007
//
/// @file    libge2d_extension.h
/// @brief   lib windows sdl extension, ge2d Lua扩展, SDL平台底层接口
/// @version 0.1
/// @history 修改历史
/// @warning 没有警告
///////////////////////////////////////////////////////////////////////////
#ifndef __LIBGE2D_EXTENSION_H__
#define __LIBGE2D_EXTENSION_H__

#include "klb_type.h"
#include "klua/klua_env.h"
#include "klbutil/klb_rect.h"
#include "klbmem/klb_buf.h"
#include "core/klbge2d.h"


#if defined(__cplusplus)
extern "C" {
#endif


typedef struct libge2d_extension_t_ libge2d_extension_t;


int kluaex_register_libge2d(klua_env_t* p_env);

libge2d_extension_t* kluaex_get_libge2d(klua_env_t* p_env);
libge2d_extension_t* kluaex_get_libge2d_by_L(lua_State* L);

int libge2d_extension_init(libge2d_extension_t* p_ex, int w, int h, const char* p_title);
void libge2d_extension_quit(libge2d_extension_t* p_ex);


klbge2d_t* libge2d_extension_get(libge2d_extension_t* p_ex);


#ifdef __cplusplus
}

#endif

#endif // __LIBGE2D_EXTENSION_H__
//end
